// 主要负责书架书籍管理功能以及数据存储
// 1.创建一个存储书架数指的空司
const state = {
	list: [], //存储书架上的书籍信息
}
// 2.创建同步函数对象 ====> 组件的methods: 主要修state内部的教指
// 同步函数:能够用工具监听数指执行情况
const mutations = {
	addBookShelf(state, obj) {

		state.list.push(obj);
	},
	removeBookShelf(state, id) {

		state.list = []
	}
}
// 3.创建导步函数 :函数对于state数据的执行是无法通过vuedetools 工具监听获取
// 异步函数一般都是直接被组件调用，再将从组件内获取的信息传递给mutations的同步函数进行处理
const actions = {
	// 设置函数:接受从书本详情页获职到的书籍信息
	// action图数内有两种不同的参数[state,mutations],{组件传递过来的数据}
	BookShelf({
		state,
		commit
	}, obj) {
		// let result = state.list.find((val)=> val.id== obj.id);
		// console.log(result);
		if (obj == null) {
			console.log('删除');
			commit('removeBookShelf', obj);
		} else {
			console.log('添加');
			commit('addBookShelf', obj);
		}
	}
}

const getters = {
	totalPrice: state => {
		let totalPrice = 0;
		state.list.forEach((v) => {
			totalPrice += v.num * v.price;
		});
		return totalPrice;
	}
}



export default {
	// 注册当前模块，并以当前文件名作为模块名称
	namespaced: true,
	state,
	mutations,
	actions,
	getters
}